1. Field of the Invention
The present invention generally relates to computer data storage systems and more particularly to a system that manages resources in a storage system being accessed by servers based on server resource usage.
2. Description of the Related Art
The evolution of storage area networks has led to the flow of data between host servers and storage subsystems. This flow of data is facilitated by transport protocols that provide reliability and in-order guarantees. In addition, these transport protocols provide flow resource management at the transport level so that receivers and senders do not overflow buffers.
However, conventional flow resource management within the transport layer does not maintain a knowledge base of storage semantics, which may lead to sub-optimal performance. For example, consider a storage subsystem that is providing services to many host servers. The transport module in the storage subsystem may divide up its resources between the host servers strictly based on transport metric such as flow rate. However, this may not be efficient, as the transport module does not interpret the storage semantics of the data exchange between the storage subsystem and the host servers.
For example, assume an initiator has a transport window size of 5000 bytes, and sends a 20 byte read request for 16 MB. The target accepts the request but cannot handle any more requests. However, the transport is oblivious to this and the sender has a window size of 4980 bytes, thus allowing the initiator to send more requests.
Storage
One-to-many
Exact
Multiple resources
Application-aware
Transport
One-to-one
Inexact
Single resources
Network-aware
The table above shows how the problem domain of storage and transport flow resource management is different. First, the storage resource management problem addresses the wider domain of resource management between many storage host server clients and a storage subsystem serving these clients. By contrast, the transport flow resource management is concerned with just two networking peers. Second, the storage flow resource management has an exact notion of the various types of resources under its control. On the other hand, the transport flow resource management does not attempt to quantify the resource utilization in the network and treats it as one indivisible type. Finally, the storage flow resource management is application-aware as it is closer to the application stack whereas the network flow resource management is more network-aware.
This amplifies the need for an integrated flow resource management approach for storage area networks. The invention described below presents a system and method for storage-aware flow resource management that maximizes resource utilization in a storage area network.